﻿using Sys.Core.Models.Dto;
using Sys.Core.Models.Queries;
using Sys.Core.Models.VO;
using Sys.Core.Services;
using MiniFox.Components;
using MiniFox.Infrastructure;

namespace Sys.Core
{
    [AutoRegister, SpareComponent(typeof(OnlineService))]
    public interface IOnlineService
    {
        ResultObject<IEnumerable<AuthCodeVo>> QueryAuthCode(PagedQueryObject<AuthQuery> authQuery);

        ResultObject<IEnumerable<AuthTokenVo>> QueryAuthToken(PagedQueryObject<AuthQuery> authQuery);

        ResultObject<IEnumerable<OnlineVo>> QueryOnline(PagedQueryObject<OnlineQuery> onlineQuery);

        ResultObject<IEnumerable<SigninLogVo>> QuerySigninLog(PagedQueryObject<SignInQuery> signInQuery);

        void RemoveAuthCode(RemoveAuthCodeDto removeAuthCodeDto);

        void RemoveAuthToken(RemoveAuthTokenDto removeAuthTokenDto);

        void Logoff(params string[] ticketId);
    }
}
